Bitstreams representing information signals are often subject to compression to conserve communications bandwidth or signal storage requirements. For example, the bandwidth or signal storage required to transmit or store a video bitstream representing a motion picture can be reduced by a factor of the order of 100 by applying suitable spatial and temporal compression. Such spatial and temporal compression schemes include the MPEG-1 and MPEG-2 schemes standardized by the ISO.
Production, distribution and display of video bitstreams representing video signals often involves processing the video bitstream in some way. Such processing may modify the video signal represented by the video bitstream. For example, the processing may apply color correction or a different gamma correction, or may apply noise reduction to the video signal. Such processing may additionally or alternatively be performed to convert the video signal from one video standard to another. In this, the number of picture elements (pixels) in each picture may be changed, and the picture rate may additionally or alternatively be changed. Moreover, when the video bitstream is compressed, the processing may also modify the bitstream characteristics of the compressed video bitstream. For example, the compressed video bitstream may be processed to change its bit rate, or to restructure it so that it can be decoded using a decoder having a decoder buffer of a different size.
An example of a conventional apparatus 10 for processing a compressed input bitstream is shown in FIG. 1. In this example, the compressed input bitstream is an MPEG-compliant video bitstream. Similar arrangements may be used for processing video bitstreams compressed according to other standards. In the conventional apparatus 10 shown in FIG. 1, the MPEG decoder 14 decodes the compressed input bitstream 12 to recover the video bitstream 16. The video processor 18 applies the processing defined by the processing selection block 20 to the video bitstream 16 to generate the modified video bitstream 22. The modified video bitstream is fed to the MPEG encoder 24 that generates the compressed output bitstream 26 by re-encoding the modified video bitstream to have bitstream characteristics, such as bit rate, buffer size, etc., defined by the processing selection block 20. The bitstream characteristics of the compressed output bitstream may be the same as, or different from, those of the compressed input bitstream 12. If the processing selected by the processing selection block only involves changing the bitstream characteristics, the video processor 18 simply passes the video bitstream 16 to the MPEG encoder 24 without modifying it.
The encoding operation performed by the MPEG encoder 24 on the modified video bitstream 22 is considerably more computationally intensive than the decoding operation performed by the MPEG decoder 14 on the compressed input bitstream 12. For example, to encode a video bitstream representing an NTSC video signal in real time requires special hardware or a computer based on a microprocessor of equivalent computing power to a 686-type microprocessor. Consequently, the conventional apparatus 10 is complex and expensive.
Of the operations performed by the MPEG encoder 24, the motion estimation operation used to determine the motion vector for each block is computationally the most intensive. The number of operations required to perform motion estimation can be scaled down by reducing the scope of the motion search region, or by using a fast motion search algorithm, but both of these approaches inevitably impair video quality. To ensure an acceptable video quality, the MPEG encoder 24 will encode most sequences using relatively large search regions with an efficient, but suboptimal, motion estimation algorithm notwithstanding the large computational resources that this approach demands.
What is needed is the ability to perform the above-mentioned processing on compressed input bitstreams without the need for special hardware, or using a computer based on a lower-cost microprocessor. What is also needed is the ability to perform the above-mentioned processing on compressed input bitstreams faster than in real time using currently-available hardware.
In video production and distribution environments, the video bitstream may be subject to a number of different processing operations. Multiple processing operations are conventionally applied to the video bitstream by concatenating a number of processors. Each processor operates on the conventional, pixel-level, video bitstream generated by the preceding processor. Such an arrangement of concatenated processors would replace the video processor 18 shown in FIG. 1.
Using a concatenated arrangement of processors to perform multiple processing operations on a video bitstream normally requires that the video bitstream operated on by each processor be a conventional video bitstream. Processors that operate on compressed or partially-compressed video bitstreams cannot be concatenated with processors that operate on conventional video bitstreams or with processors that operate on video bitstreams that are differently compressed. Moreover, processors that are designed to operate on a conventional video bitstream, i.e., on an uncompressed video bitstream, require that computational resources be expended to decode the compressed input bitstream fully before processing, and to fully re-encode the modified bitstream generated by the processors. Finally, processing systems that precede the processors by a conventional decoder and follow the processors with a conventional encoder require the compressed input bitstream to be compressed according to the compression standard of the decoder, and provide the output bitstream compressed according to the compression standard of the encoder.
Accordingly, what is also needed is a video processing system that allows processors that operate on bitstreams in different states of compression to be concatenated, that can process a compressed input bitstream in any state of compression and that can generate a compressed output bitstream in a state of compression that is greater than, less than, or the same as that of the compressed input bitstream.